package com.huibur.devicecheck.service;

import com.huibur.devicecheck.model.param.TaskRecordParam;
import com.huibur.devicecheck.model.query.TaskRecordQuery;
import com.huibur.devicecheck.model.vo.RecordStatusVO;
import com.huibur.devicecheck.model.vo.TaskRecordVO;
import com.huibur.devicecheck.request.ObjRes;
import com.huibur.devicecheck.request.PageRes;

import java.text.ParseException;
import java.util.List;

/*******************************************************
* Title: ITaskRecordService.java
* Description:
* @author baiqingshuo
* @date 2021/9/24
* @version 1.0
*******************************************************/
public interface ITaskRecordService {

    /**
     * 新增检修记录
     * @param taskRecordParam
     * @return
     */
    ObjRes<Void> insert(TaskRecordParam taskRecordParam);

    /**
     * 删除检修记录
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 编辑检修记录
     * @param id
     * @param taskRecordParam
     * @return
     */
    ObjRes<Void> updateTaskRecord(Long id, TaskRecordParam taskRecordParam);

    /**
     * 检修记录列表(查询并分页)
     * @param taskRecordQuery
     * @return
     */
    PageRes<TaskRecordVO> selectListTaskRecord(TaskRecordQuery taskRecordQuery);

    /**
     * 获取检修记录详情
     * @param id
     * @return
     */
    TaskRecordVO selectByListTaskRecord(Long id);

    /**
     * 根据用户id查询检修记录
     * @param id
     * @return
     */
    List<TaskRecordVO> findTaskRecordByUserId(Long id);

    /**
     * 根据设备唯一标识查询检修记录
     * @param deviceLabel
     * @return
     */
    List<TaskRecordVO> findTaskRecordByDeviceLabel(String deviceLabel);

    /**
     * 根据任务id查询检修记录
     * @param id
     * @return
     */
    List<TaskRecordVO> findTaskRecordByTaskId(Long id);

    /**
     * 移动端检修记录列表(查询并分页)
     * @param taskRecordQuery
     * @return
     */
    PageRes<TaskRecordVO> selectTaskRecordList(TaskRecordQuery taskRecordQuery);

    /**
     * 后台管理端首页统计图（状态统计）
     * @return
     */
    RecordStatusVO statistics() throws ParseException;
}
